Some social networking platforms have many millions of users and manage a significant amount of data associated with the users. To manage the data efficiently, the social networking platforms use some data partitioning services, which creates data partitions (“shards”). The data is stored as multiple shards in which each shard stores a subset of the data. At least some of the current social networking platforms do not optimize data writes, e.g., writing data to the social networking platform and/or replicating data from one computing system to another computing system. They may not guarantee a causal ordering of the data written into the social networking platform, e.g., in the presence of a clock skew among systems that generate the data to be stored in the social networking platform. For example, consider that a first user of the social networking platform posted a photo, and a second user of the social networking platform posted a comment against that photo, and typically the photo should have an earlier timestamp than the comment (e.g., causally ordered), but with the clock skew of computing systems that write the photo and comment, it's possible that the photo has a later timestamp than the comment, and therefore, the photo and the comment can be written to the social networking platform out of order (e.g., not causally ordered). In some social networking systems, the clock skew is even more evident when data is written from components of the social networking system that are distributed across geographical regions (e.g., and the communication links between them may have a high latency).
Some social networking platforms do not provide scalability or configurability for data writes. For example, consider that an event is being hosted for a celebrity user on the social networking platform. A significant number of users may post comments on a celebrity page in the social networking platform in a very short period of time. The current social networking platforms are not efficient in handling a sudden increase in the number of writes, thereby increasing the write latency, which deteriorates the user experience. Also, some of the current social networking platforms do not provide the flexibility for an application service to specify or choose a replication configuration per data write, that is, at the time of writing data. The application service may have to specify the replication configuration at the time of designing the application service, which can be changed later. This can be disadvantageous because if a need or objective of the application service for writing a specified data item changes, the social networking platform may not be able to fulfill that objective of the application service for writing the specified data item.